package simple.string;

/**
 * <a href="https://leetcode-cn.com/problems/rotate-string">796. 旋转字符串</a>
 * 给定两个字符串, A 和 B。
 * A 的旋转操作就是将 A 最左边的字符移动到最右边。 例如, 若 A = 'abcde'，在移动一次之后结果就是'bcdea' 。如果在若干次旋转操作之后，A 能变成B，那么返回True。
 * 示例 1:
 *   输入: A = 'abcde', B = 'cdeab'
 *   输出: true
 * 示例 2:
 *   输入: A = 'abcde', B = 'abced'
 *   输出: false
 * 注意：
 *   A 和 B 长度不超过 100。
 * @author 刘学松
 * @date 2021-03-30 20:09
 */
public class 旋转字符串 {
    public static void main(String[] args) {
        String a = "abcde";
        String b = "abced";
        System.out.println(rotateString(a, b));
    }
    public static boolean rotateString(String a, String b) {
        if (a.length() != b.length()) {
            return false;
        }
        if (a.equals(b)) {
            return true;
        }
        String start = b.substring(0, 1);
        int index = 0;
        while (index != -1) {
            if (b.equals(a.substring(index) + a.substring(0, index))) {
                return true;
            }
            index = a.indexOf(start, index + 1);
        }
        return false;
    }
}
